package com.starhub.system.database.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 数据库升级配置类
 */
@Data
@Component
@ConfigurationProperties(prefix = "database.upgrade")
public class DatabaseUpgradeConfig {
    
    /**
     * SQL升级文件目录
     */
    private String upgradePath = "sql/upgrade";
    
    /**
     * 已执行SQL文件目录
     */
    private String executedPath = "sql/executed";
    
    /**
     * 是否启用自动升级
     */
    private boolean enabled = true;
    
    /**
     * 是否在启动时执行
     */
    private boolean executeOnStartup = true;
    
    /**
     * 是否删除执行成功的SQL文件
     */
    private boolean deleteAfterSuccess = true;
    
    /**
     * 是否移动执行成功的SQL文件到已执行目录
     */
    private boolean moveAfterSuccess = true;
    
    /**
     * 启动延迟时间（毫秒）
     */
    private long startupDelay = 2000;
    
    /**
     * 是否验证目录结构
     */
    private boolean validateDirectoryStructure = true;
    
    /**
     * 是否记录详细日志
     */
    private boolean detailedLogging = true;
    
    /**
     * 文件操作失败时的重试次数
     */
    private int maxRetryCount = 3;
    
    /**
     * 重试间隔时间（毫秒）
     */
    private long retryInterval = 1000;
} 